跳到主要内容

Code Review

Code Review 需要做什么

Code Review 主要检查代码中是否存在以下方面的问题:

  • 代码的一致性
  • 编码风格
  • 代码的安全问题
  • 代码冗余
  • 是否正确设计以满足需求及性能

完整性检查(Completeness)

  • 代码是否完全实现了功能需求 (建议)
  • 代码中是否存在任何没有定义或没有引用到的变量、常量、命名空间(静态代码分析中会提示)

一致性检查(Consistency)

  • 代码的逻辑是否符合需求文档
  • 代码与全局的架构是否保持一致
  • 代码是否重复造轮子
  • 代码中是否有调试代码

正确性检查(Correctness)

  • 代码的设计模式是否遵循 SOLID 原则(就是面向对象设计)
  • 代码文件是否存放在正确的位置,

可理解性检查(Understandability)

  • 注释是否足够清晰的描述每个功能
  • 代码中是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释
  • 字段、变量、参数、方法、类的命名是否便于记忆,反映类型
  • 错误信息是否可被理解? log打的是否正确和足够?

可预测性检查(Predictability)

  • 代码是否避免了依赖于 Golang 缺省提供的功能 (建议)
  • 代码是否无意中陷入了死循环
  • 代码是否避免了无穷递归
  • 代码是否在事务中间调用 http 请求
  • 事务最终是否被 commit 或 rollback
  • 代码是否在循环内查询数据库
  • 修改老代码是否同时修改相应的影响点(建议)

健壮性检查(Robustness)

  • 代码是否采取措施避免运行时错误(如数组边界检查,for map 的指针引用问题等)
  • 代码是否针对第三方接口做了异常处理、最大超时时间限制
  • 代码是否能在大量数据的情况下正常执行,并符合性能要求

可验证性检查(Verifiability)

  • 代码中是否便于测试(尽量做到核心模块可以提取出一个单元测试)